package com.zack.util.basic.creater;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Random;

/**
 * email: miao.du@shuruitech.com author: zack time(default is Create Time may
 * change)：Jan 20, 2017 11:58:16 AM
 * 
 * 生成 uniqueid， 随机数等， 用于生成内容的 一个工具类。
 **/
public class BasicCreater {
    /**
     * 获取随机数 的list num: how many random numbers you want below: all number should be
     * below "below" above 是说大于几 例如 10， 100， 0 就是随机获取10个小于100大于0的不重复随机数。
     * 
     * @param num
     * @param below
     * @param above
     * @return
     */
    public static ArrayList<Integer> getRandomNumber(int num, int below, int above) {
        ArrayList<Integer> norepeat = new ArrayList<>();
        while (true) {
            int number = new Random().nextInt(below) + above;
            if (norepeat.contains(number)) {
                continue;
            } else {
                norepeat.add(number);
            }
            if (norepeat.size() >= num) {
                break;
            }
        }
        return norepeat;
    }

    /**
     * 获取一个关于时间的字符串，可以当成文件名使用。
     * 
     * @return 一个时间的字符串
     */
    public static String getIDByTimeCalender() {
        DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSSS");
        Calendar calendar = Calendar.getInstance();
        String idString = df.format(calendar.getTime());
        return idString;
    }

}
